package com.suray.wcs.res.msgparse;

import com.suray.wcs.res.enums.MoveOrder;
import com.suray.wcs.res.service.rescontact.ActionOrder;

import java.util.ArrayDeque;
import java.util.Deque;

/**
 * WCS发送给RES时的心跳信息
 */
public class HeartSendBean {

    public HeartSendBean() {
    }

    /**
     * 行驶命令集合
     */
    private Deque<MoveOrder> moveCommand = new ArrayDeque<>();

    /**
     * 动作命令集合
     */
    private Deque<ActionOrder> actionCommand = new ArrayDeque<>();

    /**
     * 设备类型
     */
    private int deviceType = 1;

    /**
     * 当前地图版本号 0-255
     */
    private int mapVersion;

    /**
     * 模式
     */
    private int mode;

    /**
     * 库区
     */
    private int areaNum;

    /**
     * 权限
     */
    private int authority;

    /**
     * 发送时间
     */
    private long sendTime;

    public int getMapVersion() {
        return mapVersion;
    }

    public void setMapVersion(int mapVersion) {
        this.mapVersion = mapVersion;
    }

    public Deque<MoveOrder> getMoveCommand() {
        return moveCommand;
    }

    public void setMoveCommand(Deque<MoveOrder> moveCommand) {
        this.moveCommand = moveCommand;
    }

    public Deque<ActionOrder> getActionCommand() {
        return actionCommand;
    }

    public void setActionCommand(Deque<ActionOrder> actionCommand) {
        this.actionCommand = actionCommand;
    }

    public long getSendTime() {
        return sendTime;
    }

    public void setSendTime(long sendTime) {
        this.sendTime = sendTime;
    }

    public int getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(int deviceType) {
        this.deviceType = deviceType;
    }

    public int getMode() {
        return mode;
    }

    public void setMode(int mode) {
        this.mode = mode;
    }

    public int getAreaNum() {
        return areaNum;
    }

    public void setAreaNum(int areaNum) {
        this.areaNum = areaNum;
    }

    public int getAuthority() {
        return authority;
    }

    public void setAuthority(int authority) {
        this.authority = authority;
    }

    public enum Mode {

        /**
         * 普通模式
         */
        ONE(0),
        /**
         * 全部模式
         */
        TWO(1),
        /**
         * 地图
         */
        THREE(2);
        private int code;

        private Mode(int code) {
            this.code = code;
        }

        public int getCode() {
            return code;
        }

        public void setCode(int code) {
            this.code = code;
        }

    }
}
